package com.kmxd.ams.infra.archive.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 门类|档案库配置主表
 *
 * @author ZuoLG
 * @since 2022-07-15
 */
@Data
@TableName("jy_archive_type")
public class ArchiveType implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键ID */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long id;

  /** 公司ID */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long comId;

  /** 全宗ID */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long fondsId;

  /** 名称 当前全宗下不可重复。由于此表是逻辑删除，因此需要排除掉已删除的记录的名字进行查重 */
  private String name;

  /**
   * 元数据模板类型
   * document文书档案、account会计档案、technical科技档案、img照片档案、radio音频档案、video视频档案、entity实物档案、other其他档案、material资料
   * 这里是定义“业务附加元数据”
   */
  private String model;

  /** 管理模式 前端收集库、档案库模板调用 */
  private String manageModel;

  /** 文档的表名 同步自php */
  private String docTableId;

  /** 盒表名 同步自php */
  private String boxTableId;

  /** 案卷表名 同步自php */
  private String volTableId;

  /** 项目的表名 同步自php */
  private String projTableId;

  /** 档案索引编号如f1_35_box中的35 同步自php */
  private Integer archIndex;

  /** 档案类型作为分类统计、数据展示控制的主要依据 数据来自sys_dis_detail */
  private String category;

  /** 年报统计配置 同步自php，暂不清楚用在哪里 */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long yearstatis;

  /** 归档前是否进行四性检测 */
  @JsonSerialize(using = ToStringSerializer.class)
  private Integer attributeTest;

  /** 实体-启用电子档号章 0停用，1启用 */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long enumEnabled;

  /** 实体-默认规格 存具体数值：10、20、30、40、50、60 */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long volBoxDefaultSize;

  /** 保管期限代码表，数据来自sys_dict_item.code */
  private String rpCodeId;

  /** 密级代码表，数据来自sys_dict_item.code */
  private String secretCodeId;

  /** 水印配置id */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long watermarkId;

  /** 扩展信息 */
  private String allowExtension;

  /** 包含案卷，0不包含，1包含 */
  private Boolean haveVol;

  /** 包含盒，0不包含，1包含 */
  private Boolean haveBox;

  /** 包含项目，0不包含，1包含 */
  private Boolean haveProject;

  /** 排序 */
  @JsonSerialize(using = ToStringSerializer.class)
  private Integer sort;

  /** 创建人 */
  @TableField(fill = FieldFill.INSERT)
  @JsonSerialize(using = ToStringSerializer.class)
  private Long createBy;

  /** 创建时间 */
  @TableField(fill = FieldFill.INSERT)
  private Date createTime;

  /** 更新人 */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  @JsonSerialize(using = ToStringSerializer.class)
  private Long updateBy;

  /** 更新时间 */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private Date updateTime;

  /** 删除状态(0-正常,1-已删除) */
  private Long delFlag;

  /** 允许统计 */
  @JsonSerialize(using = ToStringSerializer.class)
  private Integer allowStat;
}
